package com.weaving.monitor.entity;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * Redis机器数据实体类
 * 
 * 功能说明：
 * 1. 对应Redis中knitting_snapshot_J001格式的JSON数据结构
 * 2. 包含机器的实时状态信息，如速度、布长、剩余时间等
 * 3. 用于从Redis获取实时数据并转换为Machine实体
 * 
 * @author 系统开发团队
 * @version 1.0
 * @since 2024-01-01
 */
@Data
public class RedisMachineData {
    
    /**
     * 机器状态：1-运行，0-停止
     */
    private Integer machineStatus;
    
    /**
     * 停止原因
     */
    private Integer stopReason;
    
    /**
     * 强制刷新标志
     */
    private Integer forceRefresh;
    
    /**
     * RFID读取标志
     */
    private Integer RFIDReadFlag;
    
    /**
     * 启动代码
     */
    private Integer startCode;
    
    /**
     * 主罗拉速度
     */
    private Integer mainRollerSpeed;
    
    /**
     * 当前布长（米）
     */
    private Double currentMeter;
    
    /**
     * 员工卡时间
     */
    private String staffCardTime;
    
    /**
     * 生产卡时间
     */
    private String prodCardTime;
    
    /**
     * 裁剪时间
     */
    private String croppingTime;
    
    /**
     * 标签重印时间
     */
    private String tagRePrintTime;
    
    /**
     * 盘头1材料时间
     */
    private String beam1MatTime;
    
    /**
     * 盘头2材料时间
     */
    private String beam2MatTime;
    
    /**
     * 盘头3材料时间
     */
    private String beam3MatTime;
    
    /**
     * 盘头4材料时间
     */
    private String beam4MatTime;
    
    /**
     * 经编控制参数时间
     */
    private String warpControlParamTime;
    
    /**
     * 子布疵点数量1
     */
    private Integer subClothFlawNum1;
    
    /**
     * 子布疵点数量2
     */
    private Integer subClothFlawNum2;
    
    /**
     * 子布疵点类型1
     */
    private Integer subClothFlawType1;
    
    /**
     * 子布疵点类型2
     */
    private Integer subClothFlawType2;
    
    /**
     * 员工卡ID
     */
    private String staffCardID;
    
    /**
     * 员工新卡标志
     */
    private Integer staffNewCardFlag;
    
    /**
     * 离线标志
     */
    private Integer offlineFlag;
    
    /**
     * 所有疵点类型
     */
    private List<Integer> defectTypeAll;
    
    /**
     * 生产卡状态
     */
    private Integer prodCardsStatus;
    
    /**
     * 实际编织密度
     */
    private Integer knittingDensityReal;
    
    /**
     * 当前裁剪长度辅助
     */
    private Integer currentCroppingLengthAssist;
    
    /**
     * 梳栉1剩余小时数
     */
    private Integer gb1RemainHour;
    
    /**
     * 梳栉2剩余小时数
     */
    private Integer gb2RemainHour;
    
    /**
     * 梳栉3剩余小时数
     */
    private Integer gb3RemainHour;
    
    /**
     * 梳栉4剩余小时数
     */
    private Integer gb4RemainHour;
    
    /**
     * 断丝梳栉数量
     */
    private Integer brokeSilkGBNum;
    
    /**
     * 疵点长度
     */
    private Integer flawLength;
    
    /**
     * 打印机ID
     */
    private Integer printerID;
    
    /**
     * 打印机标志
     */
    private Integer printerFlag;
    
    /**
     * 当前布码
     */
    private Integer currentClothCode;
    
    /**
     * 生产卡ID
     */
    private String prodCardID;
    
    /**
     * 布1裁剪时间
     */
    private String cloth1CroppingTime;
    
    /**
     * 布2裁剪时间
     */
    private String cloth2CroppingTime;
    
    /**
     * 布3裁剪时间
     */
    private String cloth3CroppingTime;
    
    /**
     * 布4裁剪时间
     */
    private String cloth4CroppingTime;
    
    /**
     * 布1裁剪米数
     */
    private Double cloth1CroppingMeter;
    
    /**
     * 布2裁剪米数
     */
    private Double cloth2CroppingMeter;
    
    /**
     * 布3裁剪米数
     */
    private Double cloth3CroppingMeter;
    
    /**
     * 布4裁剪米数
     */
    private Double cloth4CroppingMeter;
    
    /**
     * 子布1当前米数
     */
    private Double subCloth1CurrentMeter;
    
    /**
     * 子布2当前米数
     */
    private Double subCloth2CurrentMeter;
    
    /**
     * 子布3当前米数
     */
    private Double subCloth3CurrentMeter;
    
    /**
     * 子布4当前米数
     */
    private Double subCloth4CurrentMeter;
    
    /**
     * 梳栉1实时经纱数量
     */
    private Integer gb1RealtimeWarpNumber;
    
    /**
     * 梳栉2实时经纱数量
     */
    private Integer gb2RealtimeWarpNumber;
    
    /**
     * 梳栉3实时经纱数量
     */
    private Integer gb3RealtimeWarpNumber;
    
    /**
     * 梳栉4实时经纱数量
     */
    private Integer gb4RealtimeWarpNumber;
    
    /**
     * 重启次数
     */
    private Integer restartTimes;
    
    /**
     * 问题字段
     */
    private Object issueFields;
    
    /**
     * 读写成功率
     */
    private Integer rwSuccessRate;
    
    /**
     * 梳栉1绑定盘头组1
     */
    private String gb1BindBeamGroup1;
    
    /**
     * 梳栉1绑定盘头组2
     */
    private String gb1BindBeamGroup2;
    
    /**
     * 梳栉1绑定盘头组3
     */
    private String gb1BindBeamGroup3;
    
    /**
     * 梳栉1绑定盘头组4
     */
    private String gb1BindBeamGroup4;
    
    /**
     * 梳栉1绑定盘头组5
     */
    private String gb1BindBeamGroup5;
    
    /**
     * 梳栉2绑定盘头组1
     */
    private String gb2BindBeamGroup1;
    
    /**
     * 梳栉2绑定盘头组2
     */
    private String gb2BindBeamGroup2;
    
    /**
     * 梳栉2绑定盘头组3
     */
    private String gb2BindBeamGroup3;
    
    /**
     * 梳栉2绑定盘头组4
     */
    private String gb2BindBeamGroup4;
    
    /**
     * 梳栉2绑定盘头组5
     */
    private String gb2BindBeamGroup5;
    
    /**
     * 梳栉3绑定盘头组1
     */
    private String gb3BindBeamGroup1;
    
    /**
     * 梳栉3绑定盘头组2
     */
    private String gb3BindBeamGroup2;
    
    /**
     * 梳栉3绑定盘头组3
     */
    private String gb3BindBeamGroup3;
    
    /**
     * 梳栉3绑定盘头组4
     */
    private String gb3BindBeamGroup4;
    
    /**
     * 梳栉3绑定盘头组5
     */
    private String gb3BindBeamGroup5;
    
    /**
     * 梳栉4绑定盘头组1
     */
    private String gb4BindBeamGroup1;
    
    /**
     * 梳栉4绑定盘头组2
     */
    private String gb4BindBeamGroup2;
    
    /**
     * 梳栉4绑定盘头组3
     */
    private String gb4BindBeamGroup3;
    
    /**
     * 梳栉4绑定盘头组4
     */
    private String gb4BindBeamGroup4;
    
    /**
     * 梳栉4绑定盘头组5
     */
    private String gb4BindBeamGroup5;
    
    /**
     * 子布数量1疵点数量
     */
    private Integer subClothNum1FlawNum;
    
    /**
     * 子布数量2疵点数量
     */
    private Integer subClothNum2FlawNum;
    
    /**
     * 子布数量3疵点数量
     */
    private Integer subClothNum3FlawNum;
    
    /**
     * 子布数量4疵点数量
     */
    private Integer subClothNum4FlawNum;
} 